home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / arm / mach-ep93xx / include / mach / ts72xx.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  2.6 KB  |  102 lines

  1. /*
  2.  * arch/arm/mach-ep93xx/include/mach/ts72xx.h
  3.  */
  4.  
  5. /*
  6.  * TS72xx memory map:
  7.  *
  8.  * virt        phys        size
  9.  * febff000    22000000    4K    model number register
  10.  * febfe000    22400000    4K    options register
  11.  * febfd000    22800000    4K    options register #2
  12.  * febfc000    [67]0000000    4K    NAND data register
  13.  * febfb000    [67]0400000    4K    NAND control register
  14.  * febfa000    [67]0800000    4K    NAND busy register
  15.  * febf9000    10800000    4K    TS-5620 RTC index register
  16.  * febf8000    11700000    4K    TS-5620 RTC data register
  17.  */
  18.  
  19. #define TS72XX_MODEL_PHYS_BASE        0x22000000
  20. #define TS72XX_MODEL_VIRT_BASE        0xfebff000
  21. #define TS72XX_MODEL_SIZE        0x00001000
  22.  
  23. #define TS72XX_MODEL_TS7200        0x00
  24. #define TS72XX_MODEL_TS7250        0x01
  25. #define TS72XX_MODEL_TS7260        0x02
  26.  
  27.  
  28. #define TS72XX_OPTIONS_PHYS_BASE    0x22400000
  29. #define TS72XX_OPTIONS_VIRT_BASE    0xfebfe000
  30. #define TS72XX_OPTIONS_SIZE        0x00001000
  31.  
  32. #define TS72XX_OPTIONS_COM2_RS485    0x02
  33. #define TS72XX_OPTIONS_MAX197        0x01
  34.  
  35.  
  36. #define TS72XX_OPTIONS2_PHYS_BASE    0x22800000
  37. #define TS72XX_OPTIONS2_VIRT_BASE    0xfebfd000
  38. #define TS72XX_OPTIONS2_SIZE        0x00001000
  39.  
  40. #define TS72XX_OPTIONS2_TS9420        0x04
  41. #define TS72XX_OPTIONS2_TS9420_BOOT    0x02
  42.  
  43.  
  44. #define TS72XX_NOR_PHYS_BASE        0x60000000
  45. #define TS72XX_NOR2_PHYS_BASE        0x62000000
  46.  
  47. #define TS72XX_NAND1_DATA_PHYS_BASE    0x60000000
  48. #define TS72XX_NAND2_DATA_PHYS_BASE    0x70000000
  49. #define TS72XX_NAND_DATA_VIRT_BASE    0xfebfc000
  50. #define TS72XX_NAND_DATA_SIZE        0x00001000
  51.  
  52. #define TS72XX_NAND1_CONTROL_PHYS_BASE    0x60400000
  53. #define TS72XX_NAND2_CONTROL_PHYS_BASE    0x70400000
  54. #define TS72XX_NAND_CONTROL_VIRT_BASE    0xfebfb000
  55. #define TS72XX_NAND_CONTROL_SIZE    0x00001000
  56.  
  57. #define TS72XX_NAND1_BUSY_PHYS_BASE    0x60800000
  58. #define TS72XX_NAND2_BUSY_PHYS_BASE    0x70800000
  59. #define TS72XX_NAND_BUSY_VIRT_BASE    0xfebfa000
  60. #define TS72XX_NAND_BUSY_SIZE        0x00001000
  61.  
  62.  
  63. #define TS72XX_RTC_INDEX_VIRT_BASE    0xfebf9000
  64. #define TS72XX_RTC_INDEX_PHYS_BASE    0x10800000
  65. #define TS72XX_RTC_INDEX_SIZE        0x00001000
  66.  
  67. #define TS72XX_RTC_DATA_VIRT_BASE    0xfebf8000
  68. #define TS72XX_RTC_DATA_PHYS_BASE    0x11700000
  69. #define TS72XX_RTC_DATA_SIZE        0x00001000
  70.  
  71.  
  72. #ifndef __ASSEMBLY__
  73. #include <linux/io.h>
  74.  
  75. static inline int board_is_ts7200(void)
  76. {
  77.     return __raw_readb(TS72XX_MODEL_VIRT_BASE) == TS72XX_MODEL_TS7200;
  78. }
  79.  
  80. static inline int board_is_ts7250(void)
  81. {
  82.     return __raw_readb(TS72XX_MODEL_VIRT_BASE) == TS72XX_MODEL_TS7250;
  83. }
  84.  
  85. static inline int board_is_ts7260(void)
  86. {
  87.     return __raw_readb(TS72XX_MODEL_VIRT_BASE) == TS72XX_MODEL_TS7260;
  88. }
  89.  
  90. static inline int is_max197_installed(void)
  91. {
  92.     return !!(__raw_readb(TS72XX_OPTIONS_VIRT_BASE) &
  93.                     TS72XX_OPTIONS_MAX197);
  94. }
  95.  
  96. static inline int is_ts9420_installed(void)
  97. {
  98.     return !!(__raw_readb(TS72XX_OPTIONS2_VIRT_BASE) &
  99.                     TS72XX_OPTIONS2_TS9420);
  100. }
  101. #endif
  102.